package com.fingard.io;

import java.io.File;

public class FileCheckHelper {

	/**判断该目录下是否存在该扩展名文件
	 * @param pFiles 要判断的文件列表
	 * @param pExt 要判断的扩展名，如pdf、html
	 * @param pChkName 要判断的被包含的文件名字符串，如账号*/
	public static boolean existExtFile(File[] pFiles, String pExt, String pChkName){
    	if(pFiles != null && pFiles.length > 0){
    		String chkExt = "." + pExt.toLowerCase();
    		String chkName = pChkName.trim().toLowerCase();
    		for(File eachFile : pFiles){
    			String eachName = eachFile.getName().trim().toLowerCase();
    			if(eachName.endsWith(chkExt) && (chkName.length()==0 || eachName.contains(chkName))){
    				return true;
    			}
    		}
    	}
    	return false;
	}
	
	/**判断该目录下是否存在该文件夹
	 * @param pFiles 要判断的文件目录
	 * @param pExt 要判断的下级文件夹名*/
	public static boolean existDirectory(File[] pFiles, String pChkName){
    	if(pFiles != null && pFiles.length > 0){
    		String chkName = pChkName.trim().toLowerCase();
    		for(File eachFile : pFiles){
    			if(eachFile.isDirectory() && eachFile.getName().trim().toLowerCase().equals(chkName)){
    				return true;
    			}
    		}
    	}
    	return false;
	}
	
	/**取得第一个目录*/
	public static File getFirstDir(File[] pFiles){
		for(File eachFile : pFiles){
			if(eachFile.isDirectory()){
				return eachFile;
			}
		}
		return null;
	}
	
	/**取得第一个存在指定扩展名文件的目录
	 * @param 文件名包含该字符串，为空则不判断*/
	public static File getFirstExistExtDirectory(File pDir, String pExt, String pChkName){
		File[] findFiles = pDir.listFiles();
		if(findFiles != null && findFiles.length > 0){
			String chkExt = "." + pExt.toLowerCase();
    		String chkName = pChkName.trim().toLowerCase();
    		for(File eachFile : findFiles){//遍历每个文件
    			if(eachFile.isFile()){
	    			String eachName = eachFile.getName().trim().toLowerCase();
	    			if(eachName.endsWith(chkExt) && (chkName.length()==0 || eachName.contains(chkName))){
	    				return pDir;
	    			}
    			}
    		}
    		for(File eachFile : findFiles){//遍历每个文件
    			if(eachFile.isDirectory()){
    				File trgFile = getFirstExistExtDirectory(eachFile, pExt, pChkName);
    				if(trgFile!=null){
    					return trgFile;
    				}
    			}
    		}
    	}
		return null;
	}
}
